package src.main.CreationalPatterns.Prototype;

import java.util.Arrays;
import java.util.List;

public class GameClient {
    public static void main(String[] args) {
        // 创建原型对象（初始化高成本）
        List<String> baseSkills = Arrays.asList("劈砍", "格挡");
        GameCharacter goblinPrototype = new Goblin("哥布林战士", baseSkills);

        // 克隆并生成新角色
        Goblin goblin1 = (Goblin) goblinPrototype.clone();
        Goblin goblin2 = (Goblin) goblinPrototype.clone();

        // 修改克隆对象的独立属性
        goblin1.setName("哥布林队长");
        goblin1.addSkill("咆哮");

        goblin2.setName("哥布林弓箭手");
        goblin2.addSkill("精准射击");

        // 验证独立性
        goblinPrototype.display(); // 输出：角色: 哥布林战士 | 技能: [劈砍, 格挡]
        goblin1.display();         // 输出：角色: 哥布林队长 | 技能: [劈砍, 格挡, 咆哮]
        goblin2.display();         // 输出：角色: 哥布林弓箭手 | 技能: [劈砍, 格挡, 精准射击]
    }
}
